﻿using System;
using System.ServiceModel;
using System.ServiceModel.Web;
using Telerik.Sitefinity.Services.Migration;

[ServiceContract]
public interface IMigrationService
{
	[OperationContract]
	[WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
	MigrationItemStatistics GetMigrationCounts(string siteUrl);

	[OperationContract]
	[WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
	string MigrationStart(string siteUrl, string checkedBoxesToMigrate, string rolesProvider, string usersProvider, string librariesProvider, string genericContentsProvider, string newsProvider, string blogsProvider, string eventsProvider, string listsProvider, bool createContentBlocksOnErrors, bool rewriteRegisterTags);

	[OperationContract]
	[WebInvoke(Method = "GET")]
	void ClearLog();

	[OperationContract]
	[WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
	string GetLog();

	[OperationContract]
	[WebInvoke(Method = "GET")]
	void CancelMigration();
}